Method for parallel editing data item of database

ABSTRACT

Computers duplicate all or part of the data in DB originals, hold the duplicates therein, and parallel edit the duplicates (alteration edit). Data defining the items of the data, in addition to the data recorded in DBs, is parallel edited. When the result of edit of an item table is judged to be effective through a process of parallel edit, the structure of the data is altered according to the contents. Although conventionally only “item designing before data input” or “item edit except inhibited parallel edit” is possible, the present invention enable parallel edit of items even after data input.

TECHNICAL FIELD

The present invention relates to a method of parallel editing work to data item of database (hereinafter “DB”) by two or more computer (s) (hereinafter “PCs”).

BACKGROUND ART <General Operation Which Sets Up an Item Before Data Input>

At general DB operation, items are first specified, table is defined next and data will be input after that, as shown by non-patent literature 1. Non-patent literature 2, Non-patent literature 3 and Non-patent literature 4, which are general technical book for DB systems development, shows a procedure by which items of a table are first defined and data will be input after that.

Patent document 1 first adds or deletes items of a template (paragraph 128) that has already been defined, alters names of these items (paragraph 150), and after that makes a (program utilizing) new table. Patent document 2 shows the same concept. Patent document 3 relates to a method creating new tables. These discussions on creating table items assume that table items have been created before data input.

<SQL Language Prohibits Parallel Editing Work>

On the other hand, SQL language permits to change items after data input, by language specification. Non-patent literature 5 shows SQL commands. For example, there are “add new column” (P384), “change column type of table” (P389) and “delete a column of table” (P395), and so on. Non-patent literature 6 of p. 46-47 shows that columns can be added by command “ALTER, TABLE”.

However, SQL language prohibits parallel editing work by permitting only one operation at a time. This is also described by chapter 5, “Updating, addition and deletion of data”, of Non-patent literature 5. Chapter 6, “Updating, addition and deletion of data”, of Non-patent literature 5 also describes advanced mechanisms, that prohibit parallel editing work by using a transaction consisting of plural related operations. One is “Roll back” that repeals all procedures of a transaction when an error such as interruption by another procedure occurs. Another is “Lock” that prohibits interruption to a procedure of a transaction by another procedure.

<Parallel Editing Work Based on Cache Technology>

Cache technology, which creates duplication for working and performs procedure without the lock, is used for effective procedures and communications. ADO.NET of Microsoft makes a copy of data that is required for the present work from a server. Next it cut connection with the server and performs an editing work. After editing work, it makes a connection to the server again, and sends contents of editing work to the server. This “contents of editing work” will be repealed, if editing target has been already changed by other PCs. This is called as “Optimistic concurrency control” (Non-patent literature 7 and 8). This can be interpreted that; editing work is repealed when a lock goes wrong as a result. This is a kind of lock.

<Limit of Conventional Technology>

Above are summarized as follow. Generally a change of an item is not made after data input. SQL forbids parallel editing work, though an item editing after an input of data is possible. Though, there is a method that performs temporal parallel editing work based on Cache, there is no consideration of changing items after data input.

That is, there is no research that enables parallel editing work of items after input of data. This may come from that full-scale technology of parallel editing work to DB, which performs off-line editing work to DB for a long time and is different from temporal editing work such as cache, has not been established. There is a possibility that no one had imagined that it is possible to perform parallel editing work to data item that determines data structure of DB.

Assuming that patent documents from 4 to 10 and non-patent literature 9 may relate with “cache” or “parallel editing work”, they were investigated. However, they only describe ways to resolve collisions of editing works. Patent documents 11 to 16 show a general level of technology and are different from the present invention.

-   [Patent document 1] Patent application 2006-309697 -   [Patent document 2] WO/2008/043136 -   [Patent document 3] Patent application 2004-341770 -   [Patent document 4] Patent application H11-272533 -   [Patent document 5] Patent application S61-134853, A -   [Patent document 6] Patent application 2005-216167, A -   [Patent document 7] Patent application H9-91184, A -   [Patent document 8] Patent application 2004-13867, A -   [Patent document 9] Patent application 2004-86800, A -   [Patent document 10] Patent application 2006-284998, A -   [Patent document 11] Patent application 2000-194592 -   [Patent document 12] Patent application H11-161535, A -   [Patent document 13] Patent application 2005-503606, A -   [Patent document 14] Patent application 2005-508050, A -   [Patent document 15] Patent application H8-16447, A -   [Patent document 16] Patent application 2000-501532, A -   [Patent document 17] PCT/JP2009/002491 -   [Non-patent literature 1] Takashi Shikii, “C++Builder database     programming No 2” InsideWindows™, SoftBank, Vol. 3, No. 12, Dec. 1,     1997, p 71-77, TOKYO JAPAN (In Japanese) -   [Non-patent literature 3] Wallace B. McClure, el at, Professional     ADO.NET 2: Programming with SQL Server 2005, Oracle, and MySQL,     Wiley Publishing, Inc. 2006 “Windows™ database programming”, ADO.NET     Specialization lecture Volume VB.NET, and Apr. 4, 2003 > (First     Edition) SHOEISHA” -   [Non-patent literature 6] Kevin Kline, Daniel Kline, Ishii and     others (supervised translation), Idea Collaboration (translation),     SQL Quick Reference, O'Reilly Japan, Nov. 2, 2001 First Edition (In     Japanese) -   [Non-patent literature 7] MSDN subscriptions Library, “Outline of     data concurrency control on ADO.NET”, January 2007, Disk File(URL:     ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/d5293098-4a88-4110-abd2-34d9e6661664.htm) -   [Non-patent literature 8] MSDN subscriptions Library, “Tutorial:     Processing exceptions of concurrent processes”, January 2007, Disk     File (URL:     ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/73ee9759-0a90-48a9-bf7b-9d6fc17bff93.htm) -   [Non-patent literature 9] KAWASHIMA, T., and HIROKAWA, H.,     YAMASHITA, M., “A World-wide Distributed File System SKINNY”, IPSJ     SIG Notes 95-S-70-1, Academic Publication IPSJ SIG Notes Vol. 95,     No. 79 ISSN 0919-6072 -   [Non-patent literature 10] “Major functions, and merits”, [online],     Searched at Apr. 22, 2007     Internet(URL:http://www.sonicsoftware.co.jp/products/object_store/function.html) -   [Non-patent literature 11] “MVCC (Multi Version Concurrency Control)     9.1. Introduction”, [online], Searched at Apr. 2, 2007 Internet     (URL:http://www.postgreSQL.jp/document/pg721doc/user/mvcc.html #MVC     C-INTRO) -   [Non-patent literature 10] “.9.5. Data consistency check at     application level”, [online], Searched at Apr., 22, 2007 Internet     (http://www.postgreSQL.jp/document/pg721doc/user/applevel-consistency.html) -   [Non-patent literature 12] “Cache Technology Guide”, [online],     Searched at Apr. 22, 2007 Internet     (URL:http://www.intersystems.co.jPCsache/technologyguide/technologyguide.html) -   [Non-patent literature 13] “Major functions and merits”, [online],     Searched at Apr. 22, 2007 Internet     (URL:http://www.sonicsoftware.co.jp/products/object_store/function.html)

DESCRIPTION OF THE INVENTION Problems to be Solved by the Invention

The present invention shows mechanism that performs parallel editing work to data item by plural PCs.

Means for Solving the Problem <Parallel Editing Work>

Parallel editing work of this specification is holding duplications of whole or a part of DB original and performing duplications on these duplications. This DB original can exist really, or cannot exist really that means this original DB is imaginary. At latter case, duplicated DBs of PCs synchronize each other. By this synchronization, these duplicated DBs synchronize with the imaginary “original DB” (Patent document 17). Another method is that; duplicated DBs of PCs synchronize with all or a part of the original DB that is updated by server. Each duplicated DB can exist permanently or temporarily in each PC.

<Separation of Item Definitions and Parallel Editing Work>

Foundation of the present invention is handling definitions of items of data of DB (hereinafter, “item definition”) as data of DB and treating them as objects of parallel editing work. For conventional relational DB (RDB), items of a table (hereinafter, a “data table”) are first defined, and after that, data entry and editing work will start. On the contrary, the present invention makes a table (hereinafter, “item table”) that defines items of the data table. This item table will be treated as an object of parallel editing works. When item table is edited, data table will be updated according to the item table, if necessary.

Although “item table” is direct expression for RDB, “item definition” will be used in the claims for more general DBs. Instead of “data table”, data will be used for expressing more general concept. That is, methods described in this specification by item table and data table will be applied to more general DB. Non-patent literatures 10, 11, 12 and 13 show examples other than RDB, such as object-oriented DB and so on.

Relations between “editing work to item table” and “editing work to data table” are classified into the following, according to contents of editing work to the item table; (A) Parallel editing work is permitted unconditionally. (B) Parallel editing work is permitted, if there is no logical inconsistency. (C) Parallel editing work is not permitted. Parallel editing work to item table and data table is described by these classifications. Parallel editing work is perfect, if it is possible to perform parallel editing work to item table, parallel editing work to data table, and further parallel editing work to both item table and data table.

Even if other PCs perform editing work to data, there is no problem of editing work that only alters item name or style (numerical format or item width) of data item. This is “(A) Parallel editing work is permitted unconditionally”.

While “data input” or “updating of data” are performed using item definitions, it was impossible to edit item definitions. Because that the definitions are recorded as fundamental information of database. The present invention separates item table and data table, and treats them as objects of parallel editing work, and enables to perform parallel editing work. If there is a technology of parallel editing work, this technology will be applied to item table and data table.

If there is a possibility that data or data structure of data table maybe changed by a change of item table, this change will be permitted under restriction that the change does not cause logical inconsistency. This is “(B) Parallel editing work is permitted, if there is no logical inconsistency”.

If new item of sex for name list has only choices of male or female and has no choice of default, a logical inconsistency may occur when the item is set to data that is already input. If the item has choices of male, female or “unknown” that is default, the inconsistency will not occur. This inconsistency will be resolved, if male or female is set as default, or if the item has choices of “male, female or unknown that is a default”.

This example is simple. However, even if sufficient thinking is performed, there is a possibility that logical inconsistency will occur for unexpected data. Even if it is confirmed that there is no logical inconsistency against existing (inputted) data, there may be an error against newly input data or updated data during the confirmation.

From these discussions, required is a process of verifying logical consistency certainly. This confirmation result should be same for all related PCs. If data table is updated by a change of item table, these results should be same for all PCs. Ways answering these requests will be shown later.

Even if a case may be “(B) Parallel editing work is permitted if there is no logical inconsistency”, this case can be treated as (C) Parallel editing work is not permitted“. Though prohibition of parallel editing work makes editing inconvenient, it prevents competition of editing work and synchronizes duplicated DBs of PCs easily. Procedure to prohibit parallel editing work will be shown later.

<Confirmation of Item Change and an Update Procedure of Data Table Structure>

All related PCs should have same results of confirmation that a change of item table has no logical inconsistency. Suppose that a logical inconsistency occurs in a certain PC, and this inconsistency does not occur in another PC. If so, it is impossible to synchronize duplicated DBs of these PCs. Data structure of these PCs should be same after updating. Actual procedure to implement them will depend on ways of parallel editing work.

As one case, suppose that server updates the original DB. Further suppose that each of duplicated DB of each PC synchronizes with whole or a part of the original DB. Here, duplicated DBs of PCs are same. Because only the server performs confirmation of changing items of data and updates data table structure.

As another case, suppose the following steps (Patent document 17). Each PC has a duplicated DB that synchronizes with (whole of or a part of) imaginary or existing original DB. Each PC performs editing work to each duplicated DB. PCs exchange their contents of editing work each other. And each PC updates each duplicated DB. For this case, important is the sequence of contents of editing work to item table and data table. Results of detecting logical inconsistency by item table or results of updating data table structure differ from each other, if PCs use different sequence of contents of editing work to update duplicated DBs.

For preventing this trouble, the following steps will be used. Sequence number is assigned to each set of contents of editing work of parallel editing work, to data table and that to item table of the data table. Each PC should take out contents of editing work by this sequence (ordinal) number and should update each duplicated DB. Even if some contents of editing work make a error for a data item, all duplicated DB synchronizes each other because the contents of editing work make same error at every PC.

There are several ways to assign ordinal numbers. One is consisting of the following steps. Contents of editing work of parallel editing work to a “data table” and “item table for the data table”, are sent up to server. The server sets them in a line in arriving order, which is single queue. Each duplicate DB synchronizes each other, if each PC receives contents of editing work and updates each duplicated DB by this order.

Even if the server (or a specific PC) changed contents of editing work from PCs, or even if the server changed the sequence of them, each duplicate DB synchronizes each other because each PC updates each duplicated DB by same (changed) sequence of contents of editing work (of same changed contents).

Another is consisting of the following steps. PC asks an ordinal number to a server (or PC) that manages ordinal numbers. PC sets this number to a set of contents of editing work created by this PC. Even if contents of editing work are exchanged among PCs directly, these ordinal numbers are unique. Instead of sequence number, time can be set to a set of contents of editing work. Time can be used as a substitute of sequence number as another ordinal number. In order to avoid confusion by time differences among PCs, we need another trick such that specific PC will be in charge of managing time.

<Procedure Prohibiting Parallel Editing Work>

For the following explanations, we assume that there is an editing work (X) performed to certain item table and assume that competing parallel editing work is prohibited. That is, “period of prohibiting editing work” for other PCs is a period from the start of editing work X to completion time of editing work X and of getting ordinal number for X. The duplicated DB of the PC will be updated by a sequence of received contents of editing work including the contents of editing work X. After that, “period of prohibiting editing work” is canceled and further editing work to any duplicated DB is not prohibited.

One method is that the server detects an editorial work during this edit prohibiting period and repeals it. For example, in case that “contents of editing work” are sent up to server, this PC also notifies “prohibition of parallel editing work before the editing work X” to server. By this notification, server repeals “contents of editing work”. Although this is a simple procedure, effort spent for the repealed “editing work” will be useless.

Another method is that the prohibition is sent to PCs. The PC of editing work X directly notifies other PCs, or notifies server and server notifies other PCs. After receiving notification of prohibition of editing work, PC will not perform editing work to duplicated DB. But this PC can update the duplicated DB. After receiving the cancelation of prohibition of editing work, it can start editing works.

One type of prohibition is a prohibition of editing work by other PCs, to same item table. Another is a prohibition of editing work by other PCs, to the data table of which items are defined by the item table.

<Referring to Claims of the Original Submission>

Parallel editing work of this specification is to hold duplicate of whole or a part of DB original and to perform editing work to this copy. Foundations of the present invention consist of the following: this parallel editing mechanism, a process treating “item definitions for data contained in DB” as data of DB, and a process to reconstruct duplicated data by updated item definitions. This is claim 1. Claim 2 is based on claim 1 and manages contents of editing work for duplicated data and duplicated item definition by a single queue. Claim 3, beyond claim 2, further contains a case that one set of contents of editing work has records of modifications to data and records of modifications to items (which is explained in paragraph 47 of this description for FIG. 3). Claim 4 further contains a process to judge validity of said contents of editing work.

Claim 5 consists of, a process to hold duplicated data and duplicated item definitions, a process to edit item definitions, and a process to manage contents of editing work for them by a single queue. Claim 6 further contains “judging validity of said contents of editing work”. Claim 7 consists of claim 5 and a process to halting editing work by other PCs during editing work to the item definitions.

Effect of the Invention

There was no research that enables parallel editing work to items by plural PCs after starting data entry. The present invention enables the following. Each PC keeps duplications of whole or a part of the DB original. PCs perform parallel editing works to their duplications. And, PCs performs parallel editing works to items of their duplications. These are called “full-scale parallel editing works on DB”.

BRIEF EXPLANATION OF FIGURE

[FIG. 1] Overview of general example

[FIG. 2] Apparatus structure implementing the present invention

[FIG. 3] Procedure to make and synchronize initial duplicated TBL

[FIG. 4] Procedure to edit duplicated TBL and to send up contents of editing work to server

[FIG. 5] Procedure to reconstruct duplicated data TBL by the contents of duplicated item TBL

[FIG. 6] Procedure to show records of duplicated data TBL based on the contents of duplicated item TBL

[FIG. 7] Example of TBL contents

[FIG. 8] Figure explaining example procedures

[FIG. 9] Procedure to prohibit parallel editing work

DESCRIPTION OF NOTATIONS

-   0101 PC-A -   0102 PC-B -   0103 Server -   0104 Communications Network (Such as Internet or others) -   0105 Memory Unit (of Server) -   0106 Initial item TBL -   0107 Initial data TBL -   0108 Contents of editing work (1) -   0108 Contents of editing work (2) -   0201 PC (Computer) -   0202 Communications Network (Such as Internet or others) -   0203 Means for communication -   0204 Means making initial duplicated TBL -   0205 Means synchronizing duplicated TBL -   0206 Means making contents of editing work to duplicated TBL -   0207 Means sending up contents of editing work to server -   0208 Means reconstructing duplicated data TBL by the contents of     duplicated item TBL -   0209 Means showing or printing records of duplicated data TBL by the     contents of duplicated item TBL -   0210 Server -   0211 Duplicated item TBL -   0212 Duplicated data TBL -   0213 Contents of editing work -   0214 Contents of editing work -   0215 Contents of editing work -   0216 Contents of editing work -   0301 Investigate whether duplicated TBL is already created in the     computer or not -   0302 Procedure making duplicated TBL -   0303 Check whether non-received “contents of editing work” exists in     server or not -   0304 Procedure receiving contents of editing work from server -   0305 Takes out “contents of editing work” received, in order -   0306 Confirm validity of contents of editing work -   0307 Update duplicated item TBL -   0308 Update duplicated data TBL -   0401 Specify contents of editing work -   0402 Set a version to duplicated TBL (or duplicated DB) that is a     target of editing work by contents of editing work -   0403 Send up contents of editing work to server -   0501 Confirm whether addition, modification or (actual) deletion     exists or not -   0502 Make empty data TBL of new item structure -   0503 Take out a record of old duplicated data TBL -   0504 Copy it to duplicated data TBL -   0505 Confirm assigned conversion procedure -   0506 Execute conversion procedure -   0601 Check each record of duplicated item TBL, in order of showing -   0602 Confirm whether the item is to be shown or not -   0603 Make item of duplicated data TBL to be shown -   0604 Take out records of duplicated data TBL in order -   0605 Show record value for corresponding item -   0701 Duplicated item TBL -   0702 Duplicated data TBL -   0703 The first appearance -   0704 Change to “Deletion=True” -   0705 The next appearance -   0801 Server -   0802 PC-A (Computer A) -   0803 PC-B (Computer B) -   0804 Initial DB (Initial item TBL 0106 and Initial data TBL 0107) -   0805 Duplicated DB of PC-A (duplicated item TBL 0211 and duplicated     data TBL 0212) -   0806 Duplicated DB of PC-B (duplicated item TBL 0211 and duplicated     data TBL 0212) -   0807 Initial DB acquisition by PC-A -   0808 Initial DB acquisition by PC-B -   0809 Confirmation and synchronization -   0810 Editing work to duplicated item TBL -   0811 Sending up “contents of editing work” -   0812 Confirmation and synchronization -   0813 Showing to an operator -   0814 Result of structural reconstruction of duplicated data TBL     (contents of editing work) -   0815 Confirmation and synchronization -   0816 Showing to an operator -   0817 Confirmation and synchronization -   0901 Notify other PCs to halt editing work -   0902 Make contents of editing work to duplicated item TBL -   0903 Send contents of editing work to other PCs -   0904 Notify other PCs to release halting editing work

BEST MODE OF CARRYING OUT THE INVENTION

A word “table” is abbreviated as “TBL” in the following descriptions and figures. FIG. 1 shows the overview of general example. This consists of two PCs (PC-A 0101, PC-B 0102) and a server 0103, which are connected through a communications network such as Internet 0104. There are “initial item TBL 0106” and “initial data TBL 0107” in memory Unit 0105 of the server. PCs (PC-A 0101 and PC-B 0102) copy them as initial of “duplicated item TBL 0211” and as initial of “duplicated data TBL 0212”. It is possible that each PC creates an empty table as an initial table. A phrase “duplicated TBL” means both of “duplicated item TBL” and “duplicated data TBL”.

When a PC has performed editing work to duplicated TBL, it sends the “contents of editing work” to the server that records it to memory unit 0105. In FIG. 1, contents of editing work to item. TBL and contents of editing work to data TBL 0108, 0109 are set in one line (single queue) by arrival order and are managed.

Generally saying, PC is constructed from arithmetic unit, main memory unit, secondary memory, input/output unit, communication unit and monitor unit, which are connected each other by bus. PC-A 0101 and PC-B 0102 of FIG. 1 read programs that are based on the present invention. Each PC acts as aggregate of memory unit 0210 and means shown in FIG. 2. PC 0201 connects to a communications network such as Internet 0202, by means for communication 0203. It communicates with server 0210 of the other side.

It implements “means making initial duplicated TBL” 0204, “means synchronizing duplicated TBL” 0205, “means making contents of editing work to duplicated TBL” 0206, “means sending up contents of editing work to server” 0207, “means reconstructing duplicated data TBL by the contents of duplicated item TBL” 0208, and “means showing or printing records of duplicated data TBL by the contents of duplicated item TBL” 0208.

Duplicated item TBL 0211 and duplicated data TBL 0212 exist in memory unit 0210. Each “contents of editing work” 0213, 0214 was created for each editing work to each of them. PC receives “contents of editing work” of other PC from the server, and also receives ordinal numbers for this “contents of editing work” from the server. PC also receives ordinal numbers for “contents of editing work” made by this PC, from the server. And, “duplicated item TBL” and “duplicated data TBL” are updated by them. If “contents of editing work” for item TBL and “contents of editing work” for data TBL are set in a single line of the server, PC also makes a single line (contents of editing work 0215, 0216) and updates duplicated item TBL 0211 and duplicated data TBL 0212.

By “means making initial duplicated TBL” 0204, initial TBLs (initial item TBL 0106 and initial data TBL 0107) in server are copied to PC. They are called initial duplicated TBLs (initial duplicated item TBL and initial data TBL 0212) of this PC. These jobs will be done when there is no initial duplicated TBL. If there is no initial TBL and if each PC understands that initial TBL is empty, each PC makes an empty duplicated TBL, which will be used as initial duplicated TBL. After operator of PC defines items to empty “duplicated item TBL”, empty data TBL can be created by these item definitions.

“Means synchronizing duplicated TBL” 0205 receives “contents of editing work” 0106 0107, performs “judging validity of contents of editing work”, updates contents of duplicated TBLs (duplicated item TBL 0211 and duplicated data TBL 0212) by (judged as) valid “contents of editing work”.

FIG. 3 shows a process by “means making initial duplicated TBL” 0204 and “means synchronizing duplicated TBL” 0205.

At first, “Investigation whether duplicated TBL is already made in the computer or not” 0301 is performed. If not, PC makes initial duplicated TBLs by copying initial TBLs (initial item TBL 0211 and initial data TBL 0212). Or, PC makes empty “duplicated TBL” as initial 0302. This is a process of “Means making initial duplicated TBL” 0204.

Next, PC confirms that the server 0103, 0210 has “contents of editing work” that are not yet received by this PC. If so, PC receives these “contents of editing work” from the server 0304. And, PC takes out “contents of editing work” received, in order, performs “confirming validity of contents of editing work” 0306. If valid, PC updates duplicated item TBL 0307 or updates duplicated data TBL according to each target of “contents of editing work”. FIG. 3 shows a procedure for a case that one “contents of editing work” has editing work either of a duplicated item TBL or a duplicated data TBL. One “contents of editing work” can contain both types of “contents of editing work”. In this case, “updating duplicated item TBL” 0307 and “updating duplicated data TBL” 0308 will be performed in order, according to “contents of editing work”. This is a procedure of “means synchronizing duplicated TBL” 0205.

“Means making contents of editing work for duplicated TBL” performs editing work to duplicated item TBL 0211 and duplicated data TBL 0212. These “contents of editing work” will be sending up to the server, by “means sending up contents of editing work to server” 0207. FIG. 4 shows this procedure. At first, “specify contents of editing work” 0401 is performed. Next, “set a version of duplicated TBL (or duplicated DB) that is a target of editing work by contents of editing work” 0402 is performed. And “sending up contents of editing work to server” 0403 is performed.

Contents of editing work 0108, 0109 that are sent up to the server, will be received by other PCs, which use their “means synchronizing duplicated TBL” 0205. And, “confirming validity of contents of editing work” 0306 is performed, and duplicated TBL of these PCs will be updated. “Means synchronizing duplicated TBL” 0205 will be performed also by the computer that sent up the “contents of editing work”.

These means implement parallel DB access to an item TBL and a data TBL of the item TBL. Other means handles relations among an item table and an original table of the item table.

“Means reconstructing duplicated data TBL by the contents of duplicated item TBL” 0208 creates an empty original table of new item structure, if records of item table are added or changed or (really) deleted. Old original data records will be copied and moved. When “deletion” only means not to show to operator, there is no need to reconstruct duplicated data TBL.

FIG. 5 shows this procedure. At first, it confirms that records of item table are added or changed or (really) deleted. If so, empty data TBL of new item structure will be created 0502. After that, “taking out records of old duplicated data TBL” 0503 is performed. Each record is copied to duplicated data TBL 0504. If a item was (really) deleted, the value is not (cannot) moved to new original table.

If DB software (to be used) has a function that edits item and performs related changes about table structure, this function may be used. In this case, “means reconstructing duplicated data TBL by the contents of duplicated item TBL” 0208 will be implemented by this function according to contents of duplicated item TBL.

If conversion procedure, which sets value of new item from value of existing item, has been specified, the following steps will be performed. “Taking out a record of old duplicated data TBL” 0503 of FIG. 5 is performed. After a procedure of “copying it to new duplicated data TBL” 0504, “confirming assigned conversion procedure” 0505, and “executing the conversion procedure” 0506 are performed. An example of conversion procedure is shown later.

By “means showing or printing records of duplicated data TBL by the contents of duplicated item TBL” 0209, items with flags to show will be shown in a sequence that is specified in a record of duplicated item TBL 0211. And, records of duplicated data TBL 0212 will be shown (or printed). As for an item record with “Display=False”, values for this item will not be shown (or printed) at the duplicated data TBL 0212.

FIG. 6 shows this procedure. “Checking each record of duplicated item TBL, in order of showing” is performed. “Confirming whether an item is to be shown or not” is performed. If “Display=True”, “Making item of duplicated data TBL to be shown” is performed. “Taking our records of duplicated data TBL in order” 0604 and “showing record value for corresponding item” 0605 will be performed.

<An Example of Conversion Procedure>

An example is explained using duplicated item TBL 0701 and duplicated data TBL 0702 of FIG. 7. Duplicated item TBL 0701 has records of “student name”, “evaluation” and “admission day”, which determine items of duplicated data TBL 0702. Duplicated data TBL 0702 has two records.

“The first appearance” 0703 is an appearance before the record with “ID=4” is added to duplicated item TBL 0701. With this time, item with “ID=4” (addition (2)) does not exist in duplicated data TBL 0702. Records of the duplicated data TBL have no value of the item.

[Conversion Procedure]:

This converts the evaluation from 0-100 to success/failure. This conversion will be implemented by combining deletion and addition of items.

At first, status of record ID=2, which defines a item of “evaluation”, is changed to deleted status, by changing value of “deletion” from “False” to “True” 0704. Next, a new record (ID=4) for item of “evaluation” is created. This is “addition (1)”.

Next, defined is a conversion procedure that changes old value of “evaluation” to new value of “evaluation”. For example, 0-59 will be “failure” and 60-100 will be “success”. Other numbers or strings that cannot be converted to numbers will be “unknown”.

Results of the execution of the conversion procedure are values of item ID=4 (addition (2)) of each record of duplicated data TBL 0702. By showing this, “the first appearance” 0703 will be changed to “the next appearance” 0705. Item ID=2 of the old record is not shown and new item ID=4 is shown. And, an operator understands that item of “evaluation” is changed.

[Revival of Deletion]:

Item with deletion flag can be revived by clearing the flag. Value of the item of old record will be shown. In above-mentioned example, “the first appearance” can be shown again, by the following steps. Item record of ID=4 is changed to “Deletion=True” 0704. Item record of ID=2 is revived by changing to “Deletion=False”

[Order of Showing]:

“The first appearance” 0703 and “the next appearance” 0705 show items of “student name”, “evaluation” and “admission day”, in a sequence of values of “display order” of item table. By changing values of “display order” of the item table, showing order of items of original table will be changed.

[Flow of Procedure]:

FIG. 8 shows a procedure assuming that DB has a “duplicated item TBL” and a “duplicated data TBL”, and updating work to them are managed by versions of this DB.

PC-A0802 and PC-B0803 receives 0807 initial DB 0804, which has initial item TBL 0106 and initial data TBL 0107, as duplicated DBs 0805, 0806 of them. These duplicated DBs have duplicated item TBLs 0211 and duplicated data TBLs 0212. Their versions are zero, because they were copied from initial DB 0804 of version 0 in server 0801. After that, “contents of editing work” 1-6 are sent up to the server. They are “contents of editing work” sent by PCs other than PC-A 0802 and PC-B 0803.

Before starting editing work to duplicated item TBL, PC-A 0802 performs synchronization 0809 as the first step. With this time, “contents of editing work” 1-6 are received from the server 0801, version of duplicated DB 0805 will be set to 6. And, an editing work 0810 to duplicated item TBL 0211 in Duplicated DB 0805 is performed. The “contents of editing work” will be sent 0811 up to the server, and will be recorded as “contents of editing work” 7.

Just after this, “contents of editing work”, that was previously sent 0811 up, is judged as valid. The “contents of editing work” is confirmed as “contents of editing work” 7. This result will be shown to an operator of computer A 0802.

If editing work 0810 to the duplicated item TBL 0211 requires reconstruction of corresponding duplicated data TBL, (program of) PC-A 0802 reconstructs the “duplicated data TBL” and sends the result to the server as “contents of editing work” 0814. This “contents of editing work” will be “contents of editing work” 8 in the server. PC-A 0802 performs synchronization 0815, and shows results by settled “contents of editing work” to an operator of PC-A 0802. PC-B 0203 also performs synchronization 0817 of duplicated item TBL 0211 and duplicated data TBL 0212.

<Prohibition of Parallel Editing Work>

Procedure of FIG. 9 will be used to stop editing work by other PCs during editing work to duplicated item TBL 0211 of a PC. At first, “notifying other PCs to halt editing work” 0910 is performed. Next, “making contents of editing work to ‘duplicated item TBL’” 0902 and “sending contents of editing work to other PCs” 0903 will be performed. And, “notifying other PCs to release halting editing work” 0904 will be performed.

INDUSTRIAL APPLICABILITY

Most of traditional database operations are simple that: At first, items of table will be designed. After that, data is input to this table and is edited. “SQL Language specification” permits editing work to item definitions, even if data was already input. But parallel editing work is prohibited. Parallel editing work to items by plural PCs becomes possible by the present invention. This brings a great flexibility to database operation. 

1. A method to edit database, comprising; (A) holding duplicate of data of database, and duplicate of item definitions that defines items of said data, (B) a process to update said duplicate of item definitions by recorded editorial contents received from the exterior, (C) a process to reconstruct said duplicate of data by contents of updated said duplicate of item definition.
 2. A method to edit database, comprising; (A) holding duplicate of data of database, and duplicate of item definitions that defines items of said data, (B1) a series of processes to take out recorded editorial contents, which are received from the exterior in assigned order, and by said recorded editorial contents to update said duplicate of data or said duplicate of item definitions, (C) a process to reconstruct said duplicate of data by contents of updated said duplicate of item definition.
 3. A method to edit database, comprising; (A) holding duplicate of data of database, and duplicate of item definitions that defines items of said data, (B2) a series of processes to take out recorded editorial contents, which are received from the exterior, in assigned order, and by said recorded editorial contents to “update said duplicate of data and/or said duplicate of item definitions”, (C) a process to reconstruct said duplicate of data by contents of updated said duplicate of item definition.
 4. A method to edit database, comprising; (A) holding duplicate of data of database, and duplicate of item definitions that defines items of said data, (B3) a series of processes to take out recorded editorial contents, which are received from the exterior, in assigned order, and to evaluate validity of said editorial contents, and to update said duplicate of data and/or said duplicate of item definition, according to the recorded editorial contents that is judged as valid. (C) a process to reconstruct said duplicate of data by contents of updated said duplicate of item definition.
 5. A method to edit database, comprising; (A) holding duplicate of data of database, and duplicate of item definitions that defines items of said data, (D) a process to make recorded editorial contents for said copy of item definitions and to send them to the exterior, (B4) receiving or holding said recorded editorial contents, and/or recorded editorial contents of the exterior, (B5) a series of processes to take out recorded editorial contents, in assigned order, and to update said duplicate of data and/or said duplicate of item definition, according to the recorded editorial contents that is judged as valid.
 6. A method to edit database, comprising; (A) holding duplicate of data of database, and duplicate of item definitions that defines items of said data, (D) a process to make recorded editorial contents for said copy of item definitions and to send them to the exterior, (B4) receiving or holding said recorded editorial contents, and/or recorded editorial contents of the exterior, (B6) a series of processes to take out recorded editorial contents in assigned order, and to evaluate validity of said editorial contents, and to update said duplicate of data and/or said duplicate of item definition, according to the recorded editorial contents that is judged as valid.
 7. A method to edit database, comprising; (A) holding duplicate of data of database, and duplicate of item definitions that defines items of said data, and (D1) notifying to halt editing works to other computers, before starting of editing work on said duplicate of item definitions, (D) making recorded editorial contents for said copy of item definitions and sending them to the exterior, (D2) notifying to cancel of halting editing works, after said editing work, and, (B4) receiving or holding said recorded editorial contents, and/or recorded editorial contents of the exterior, (B5) a series of processes to take out recorded editorial contents, in assigned order, and to update said duplicate of data and/or said duplicate of item definition, according to the recorded editorial contents that is judged as valid. 